const axios = require('axios');
const dotenv = require('dotenv');
const path = require('path');

// 加载环境变量
dotenv.config({ path: path.resolve(__dirname, '.env') });

// 使用安全端口
const PORT = parseInt(process.env.PORT || 5000) + 1;
const API_URL = `http://localhost:${PORT}/api`;

// 模拟用户登录
async function login() {
  try {
    const response = await axios.post(`${API_URL}/users/login`, {
      email: 'test@example.com',
      password: 'password123'
    });
    
    return response.data.token;
  } catch (error) {
    console.error('登录失败:', error.message);
    if (error.response) {
      console.error('错误详情:', error.response.data);
    }
    throw new Error('登录失败');
  }
}

// 测试文档摘要 API
async function testDocumentSummary(token, documentId) {
  try {
    console.log(`测试文档摘要 API，文档ID: ${documentId}`);
    
    const response = await axios.get(`${API_URL}/documents/${documentId}/summary`, {
      headers: {
        'Authorization': `Bearer ${token}`
      }
    });
    
    console.log('摘要生成成功:');
    console.log('- 文档标题:', response.data.title);
    console.log('- 摘要内容:', response.data.summary);
    
    return response.data;
  } catch (error) {
    console.error('获取摘要失败:', error.message);
    if (error.response) {
      console.error('错误详情:', error.response.data);
    }
    throw error;
  }
}

// 运行测试
async function runTest() {
  try {
    // 登录获取 token
    console.log('正在登录...');
    const token = await login();
    console.log('登录成功，获取到 token');
    
    // 测试文档摘要 API
    // 注意：需要替换为实际的文档 ID
    const documentId = '6123456789abcdef01234567';
    await testDocumentSummary(token, documentId);
    
  } catch (error) {
    console.error('测试失败:', error.message);
  }
}

// 如果直接运行此脚本，则执行测试
if (require.main === module) {
  console.log('开始测试文档摘要 API...');
  runTest();
}

module.exports = {
  login,
  testDocumentSummary
}; 